Package org.python.pydev.parser.prettyprinterv2

Source Code of org.python.pydev.parser.prettyprinterv2.WriterEraserV2

/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.parser.prettyprinterv2;

import org.python.pydev.core.structure.FastStack;

import com.aptana.shared_core.string.FastStringBuffer;

public class WriterEraserV2 implements IWriterEraser {

    FastStack<FastStringBuffer> buf = new FastStack<FastStringBuffer>(30);

    public WriterEraserV2() {
        pushTempBuffer(); //this is the initial buffer (should never be removed)
    }

    public void write(String o) {
        buf.peek().append(o);
    }

    public void erase(String o) {
        FastStringBuffer buffer = buf.peek();
        if (buffer.toString().endsWith(o)) {
            //only delete if it ends with what was passed
            int len = o.length();
            int bufLen = buffer.length();
            buffer.delete(bufLen - len, bufLen);
        }
    }

    public boolean endsWithSpace() {
        FastStringBuffer current = buf.peek();
        if (current.length() == 0) {
            return false;
        }
        return current.lastChar() == ' ';
    }

    public FastStringBuffer getBuffer() {
        return buf.peek();
    }

    public void pushTempBuffer() {
        buf.push(new FastStringBuffer());
    }

    public String popTempBuffer() {
        return buf.pop().toString();
    }

    @Override
    public String toString() {
        return "WriterEraser<" + buf.peek().toString() + ">";
    }
}
TOP

Related Classes of org.python.pydev.parser.prettyprinterv2.WriterEraserV2

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.